x<y?y:x这类表达式怎么理解

来源:百度知道 编辑:UC知道 时间:2024/06/06 18:45:08
如 main()
{ int x=1,y=2,z=3;
x+=y+=z;
printf("%d\t",x<y?y:x);
printf("%d\t",x<y?x++:y++);
}
输出的结果

您好,
这是c语言中的三目运算符,
也是c语言中的唯一一个三目运算符,

用简单的话可以这样表达它的意思

条件?满足条件执行这句:不满足条件执行这句

上面这个程序x<y自然是不满足的所以输出x,和y++;所以会输出6和5

x<y若为真
则表达式值为y
x<y若为假
则表达式值为x

a?b:c等价于

if(a)
b;
else
c;